package com.cxh.base;

import org.springframework.beans.factory.annotation.Autowired;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

/**
 * 类说明：通用server实现类(实现 数据源1)
 * 注入Mapper工具包
 * 事务管理  spring-content.xml文件中 进行管理
 * 注意：使用事物管理注解@Transactional之后  无法使用自定义注解
 * 方法命名方式：请根据spring-content.xml事物命名，否则只拥有只读权限
 *
 * @author ChenXH
 * @date 2018年7月22日
 */
public class DataServiceImpl<T> implements BaseService<T> {
    /**
     * 注入Mapper包
     */
    @Autowired
    private Mapper<T> dao;

    @Override
    public List<T> selectByExample(Object record) {
        return dao.selectByExample(record);
    }

    @Override
    public T selectByPrimaryKey(Object key) {
        return dao.selectByPrimaryKey(key);
    }

    @Override
    public int insert(T record) {
        return dao.insert(record);
    }

    @Override
    public int insertSelective(T record) {
        return dao.insertSelective(record);
    }

    @Override
    public int delete(T key) {
        return dao.delete(key);
    }

    @Override
    public int deleteByPrimaryKey(Object key) {
        return dao.deleteByPrimaryKey(key);
    }

    @Override
    public int updateByPrimaryKey(T record) {
        return dao.updateByPrimaryKey(record);
    }

    @Override
    public int updateByPrimaryKeySelective(T record) {
        return dao.updateByPrimaryKeySelective(record);
    }

    @Override
    public List<T> selectAll() {
        return dao.selectAll();
    }

    @Override
    public int selectCount(T record) {
        return dao.selectCount(record);
    }

    @Override
    public int selectCountByExample(Object example) {
        return dao.selectCountByExample(example);
    }

    @Override
    public int deleteByExample(Object example) {
        return dao.deleteByExample(example);
    }
}
